This invention is related to general assembly design in which parts or objects of different design dimensions ranges are involved. This invention can be found in any program that mixes through a product structure objects of high dimension (like a 1000 km road) and objects of small dimensions (like a bolt).
Such a design dimensions range corresponds to real dimensions of objects which are comprised between a lower limit and an upper limit delimiting said dimensions range.
It is likely to be found in civil engineering software wherein the mix of objects of different dimensions is very common.
Most of three-dimensional Computer-Aided Design software are already able to handle objects of different design dimensions ranges.
When objects of different design dimensions ranges are all involved in the same scene, the software degrades the precision of modeling to be able to handle this wide range of dimensions.
Standard three-dimensional Computer-Aided Design software face this issue: CATIA, Solidworks, Unigraphics NX, PTC ProEngineer, etc.
However, CATIA Version 5 provides different design dimensions ranges of design in different objects but it is impossible to mix the objects of different design dimensions ranges to make a complete multi design dimensions ranges assembly. This drawback may lead the users to bypass it or use it in a unconventional manner.
For instance, users generally use a scale factor in order to fit large dimension objects into a normal dimension object. For instance, using a 1:1000 scale factor, a 100 km dike becomes a 100 m object which can fit in a normal dimension object. Of course, the issue of mixing objects remains.
Different civil engineering software can also be considered: Autodesk Civil 3D, Bentley Microstation, Nemetschek Allplan, Intergraph SmartPlant, etc.
Those civil engineering software have generally made the assumption of high dimensions objects design, and thus do not allow to design very small and precise mechanical assemblies.
The range of design, which is the size ratio between the biggest and the smallest element, is limited by the hardware architecture of the computer.
This is due to the fact that computers have to encode real numbers in order to represent them in a binary form which is the only one understandable by the computer. With the latest computer architectures and program languages, real numbers are encoded on sixty-four bits. This allows storing roughly a number with a total of fifteen significant digits; all the digits after the fifteenth are ignored (rounded according to IEEE standard).
Unfortunately, due to ‘cancellation’ errors, this precision decreases when operations are performed on those numbers. For the sake of explanation, the following example is given. To simplify, we consider a (very poor) computer which can only handle three digits (instead of fifteen digits), and we ask this computer to perform the following operation x+y+z with:x=8.22; y=0.00317; and z=0.00432.
This operation has two different results depending on the order it is computed:                (x+y)+z gives:        x+y=8.22317 which is rounded at 8.22        then (x+y)+z=8.22432 which is rounded at 8.22x+(y+z) gives:        y+z=0.00749 which is not truncated since it keeps three digitsx+(y+z)=8.22749 which is rounded at 8.23        
It is possible to imagine the loss of precision when millions of operations are performed to solve differential equations for instance.
This loss of precision increases when the magnitude between the considered numbers increases.
That is why geometric modelers have a predefined and constant range of design for geometric objects which defines the size ratio between the biggest and the smallest element.
That makes it very hard to model and manage a complete assembly which mixes objects of completely different dimensions, for instance a 10000 km road on which there is a car, which contains an electronic board which contains chips which contains transistors. Software must degrade the precision of modeling to be able to handle this wide range of dimensions at the same time. That makes it impossible for the user to get the expected accuracy across all ranges of dimensions that are involved in his design. For instance, an accuracy (or precision) of 1 cm is enough when modeling a dike which spans over 100 km, but the 1 μm precision is mandatory when designing a small mechanical assembly that will be included in this dike.
Thus, to design an assembly of objects, with objects in different design dimensions ranges, it is necessary for the user to change of software with data export, which leads to a significant loss of accuracy.